Skip to main content

AMQP protocol - Model and Protocol

Advanced Message Queuing Protocol (AMQP) 0-9-1 often signals an invalid operation by closing its channel or connection instead of returning a success response for every method. This is an assertion-style error model: an operation is assumed to work unless the broker reports an error.

The following notes paraphrase the specification's error model:

"We can dispense with confirmations because we adopt an assertion model for all actions. Either they succeed, or we have an exception that closes the channel or connection."

The protocol also has publisher confirms as a separate extension, so “no confirmation” here refers to ordinary method calls rather than every AMQP feature. Transactions are another, older way to group publishing work.

Error Handling​

An operational error is a valid request that cannot succeed now, such as referring to a missing queue or lacking permission; it usually closes that channel. A structural error means the frame itself breaks the protocol rules, such as invalid binding arguments or methods sent in the wrong order; it can close the entire connection.

Share: